home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_ImageMagick.idb / usr / freeware / include / magick / X.h.z / X.h
Encoding:
C/C++ Source or Header  |  1999-01-26  |  12.3 KB  |  658 lines

  1. #undef False
  2. #undef True
  3. #define XLIB_ILLEGAL_ACCESS  1
  4. #if !defined(macintosh)
  5. #include <X11/Xos.h>
  6. #include <X11/Xlib.h>
  7. #include <X11/Xutil.h>
  8. #include <X11/Xresource.h>
  9. #include <X11/Xproto.h>
  10. #include <X11/Xatom.h>
  11. #include <X11/cursorfont.h>
  12. #include <X11/keysym.h>
  13. #if !defined(vms)
  14. #include <X11/XWDFile.h>
  15. #else
  16. #include "XWDFile.h"
  17. #endif
  18. #else
  19. #include <Xos.h>
  20. #include <Xlib.h>
  21. #include <Xutil.h>
  22. #include <Xresource.h>
  23. #include <Xproto.h>
  24. #include <Xatom.h>
  25. #include <cursorfont.h>
  26. #include <keysym.h>
  27. #include <XWDFile.h>
  28. #endif
  29. #if defined(HasShape)
  30. #include <X11/extensions/shape.h>
  31. #endif
  32. #if defined(HasSharedMemory)
  33. #include <sys/ipc.h>
  34. #include <sys/shm.h>
  35. #include <X11/extensions/XShm.h>
  36. #endif
  37. #undef index
  38. #if defined(_AIX) || defined(hpux9)
  39. #define XFD_SET  int
  40. #else
  41. #define XFD_SET  fd_set
  42. #endif
  43. /*
  44.   Define declarations.
  45. */
  46. #define MaxNumberFonts  11
  47. #define MaxNumberPens  11 
  48. #define SuspendTime  50
  49. #define XGammaPixel(map,gamma,color,dx)  (unsigned long) (map->base_pixel+ \
  50.   ((gamma[(color)->red].red*map->red_max+(1 << (dx-1)))/((1 << dx)-1))* \
  51.     map->red_mult+ \
  52.   ((gamma[(color)->green].green*map->green_max+(1 << (dx-1)))/((1 << dx)-1))* \
  53.     map->green_mult+ \
  54.   ((gamma[(color)->blue].blue*map->blue_max+(1 << (dx-1)))/((1 << dx)-1))* \
  55.     map->blue_mult)
  56. #define XStandardPixel(map,color,dx)  (unsigned long) (map->base_pixel+ \
  57.   (((color).red*map->red_max+(1 << (dx-1)))/((1 << dx)-1))*map->red_mult+ \
  58.   (((color).green*map->green_max+(1 << (dx-1)))/((1 << dx)-1))*map->green_mult+\
  59.   (((color).blue*map->blue_max+(1 << (dx-1)))/((1 << dx)-1))*map->blue_mult)
  60.  
  61. /*
  62.   Default colors declarations.
  63. */
  64. #define BackgroundColor  "#bdbdbd"  /* gray */
  65. #define BorderColor  "#bdbdbd"  /* gray */
  66. #define ForegroundColor  "#000"  /* black */
  67. #define MatteColor  "#bdbdbd"  /* gray */
  68. #define Pen0Color  "#bdbdbd"  /* gray */
  69. #define Pen1Color  "#000000"  /* black */
  70. #define Pen2Color  "#0000ff"  /* blue */
  71. #define Pen3Color  "#00ffff"  /* cyan */
  72. #define Pen4Color  "#00ff00"  /* green */
  73. #define Pen5Color  "#bdbdbd"  /* gray */
  74. #define Pen6Color  "#ff0000"  /* red */
  75. #define Pen7Color  "#ff00ff"  /* magenta */
  76. #define Pen8Color  "#ffff00"  /* yellow */
  77. #define Pen9Color  "#ffffff"  /* white */
  78.  
  79. /*
  80.   Display state declarations.
  81. */
  82. #define DefaultState  0x0000
  83. #define EscapeState  0x0001
  84. #define ExitState  0x0002
  85. #define FormerImageState  0x0004
  86. #define ModifierState  0x0008
  87. #define MontageImageState  0x0010
  88. #define NextImageState  0x0020
  89. #define RetainColorsState  0x0040
  90. #define UpdateConfigurationState  0x0080
  91. #define UpdateRegionState  0x0100
  92. /*
  93.   Animate state declarations.
  94. */
  95. #define AutoReverseAnimationState 0x0004
  96. #define ForwardAnimationState 0x0008
  97. #define HighlightState  0x0010
  98. #define PlayAnimationState 0x0020
  99. #define RepeatAnimationState 0x0040
  100. #define StepAnimationState 0x0080
  101.  
  102. /*
  103.   Enumeration declarations.
  104. */
  105. typedef enum
  106. {
  107.   ForegroundStencil,
  108.   BackgroundStencil,
  109.   OpaqueStencil,
  110.   TransparentStencil
  111. } AnnotationStencil;
  112.  
  113. typedef enum
  114. {
  115.   UndefinedMode,
  116.   FrameMode,
  117.   UnframeMode,
  118.   ConcatenateMode
  119. } MontageMode;
  120.  
  121. typedef enum
  122. {
  123.   UndefinedColormap,
  124.   PrivateColormap,
  125.   SharedColormap
  126. } XColormapType;
  127.  
  128. /*
  129.   Typedef declarations.
  130. */
  131. typedef struct _DiversityPacket
  132. {
  133.   Quantum
  134.     red,
  135.     green,
  136.     blue;
  137.  
  138.   unsigned short
  139.     index;
  140.  
  141.   unsigned long
  142.     count;
  143. } DiversityPacket;
  144.  
  145. typedef struct _XAnnotateInfo
  146. {
  147.   int
  148.     x,
  149.     y;
  150.  
  151.   unsigned int
  152.     width,
  153.     height;
  154.  
  155.   AnnotationStencil
  156.     stencil;
  157.  
  158.   double
  159.     degrees;
  160.  
  161.   XFontStruct
  162.     *font_info;
  163.  
  164.   char
  165.     *text,
  166.     geometry[MaxTextExtent];
  167.  
  168.   struct _XAnnotateInfo
  169.     *previous,
  170.     *next;
  171. } XAnnotateInfo;
  172.  
  173. typedef struct _XDrawInfo
  174. {
  175.   int
  176.     x,
  177.     y;
  178.  
  179.   unsigned int
  180.     width,
  181.     height;
  182.  
  183.   char
  184.     geometry[MaxTextExtent];
  185.  
  186.   double
  187.     degrees;
  188.  
  189.   AnnotationStencil
  190.     stencil;
  191.  
  192.   PrimitiveType
  193.     primitive;
  194.  
  195.   Pixmap
  196.     stipple;
  197.  
  198.   unsigned int
  199.     line_width;
  200.  
  201.   XSegment
  202.     line_info;
  203.  
  204.   RectangleInfo
  205.     rectangle_info;
  206.  
  207.   unsigned int
  208.     number_coordinates;
  209.  
  210.   XPoint
  211.     *coordinate_info;
  212. } XDrawInfo;
  213.  
  214. typedef struct _XImportInfo
  215. {
  216.   unsigned int
  217.     frame,
  218.     borders,
  219.     screen,
  220.     descend,
  221.     silent;
  222. } XImportInfo;
  223.  
  224. typedef struct _XMontageInfo
  225. {
  226.   char
  227.     filename[MaxTextExtent];
  228.  
  229.   unsigned int
  230.     shadow;
  231.  
  232.   CompositeOperator
  233.     compose;
  234.  
  235.   unsigned int
  236.     pointsize;
  237.  
  238.   char
  239.     *frame,
  240.     *tile,
  241.     *texture;
  242. } XMontageInfo;
  243.  
  244. typedef struct _XPixelInfo
  245. {
  246.   unsigned int
  247.     colors;
  248.  
  249.   unsigned long
  250.     *pixels;
  251.  
  252.   XColor
  253.     foreground_color,
  254.     background_color,
  255.     border_color,
  256.     matte_color,
  257.     highlight_color,
  258.     shadow_color,
  259.     depth_color,
  260.     trough_color,
  261.     box_color,
  262.     pen_color,
  263.     pen_colors[MaxNumberPens],
  264.     *gamma_map;
  265.  
  266.   unsigned short
  267.     box_index,
  268.     pen_index;
  269.  
  270.   GC
  271.     annotate_context,
  272.     highlight_context,
  273.     widget_context;
  274. } XPixelInfo;
  275.  
  276. typedef struct _XResourceInfo
  277. {
  278.   XrmDatabase
  279.     resource_database;
  280.  
  281.   ImageInfo
  282.     image_info;
  283.  
  284.   QuantizeInfo
  285.     quantize_info;
  286.  
  287.   unsigned int
  288.     close_server,
  289.     backdrop;
  290.  
  291.   char
  292.     *background_color,
  293.     *border_color;
  294.  
  295.   unsigned int
  296.     border_width;
  297.  
  298.   char
  299.     *browse_command,
  300.     *client_name;
  301.  
  302.   XColormapType
  303.     colormap;
  304.  
  305.   unsigned int
  306.     color_recovery;
  307.  
  308.   unsigned int
  309.     confirm_exit,
  310.     debug,
  311.     delay;
  312.  
  313.   char
  314.     *display_gamma;
  315.  
  316.   unsigned int
  317.     display_warnings;
  318.  
  319.   char
  320.     *editor_command,
  321.     *font,
  322.     *font_name[MaxNumberFonts],
  323.     *foreground_color;
  324.  
  325.   unsigned int
  326.     gamma_correct;
  327.  
  328.   int
  329.     gravity;
  330.  
  331.   char
  332.     home_directory[MaxTextExtent],
  333.     *icon_geometry;
  334.  
  335.   unsigned int
  336.     iconic,
  337.     immutable;
  338.  
  339.   char
  340.     *image_geometry,
  341.     *launch_command;
  342.  
  343.   unsigned int
  344.     magnify;
  345.  
  346.   char
  347.     *map_type,
  348.     *matte_color;
  349.  
  350.   char
  351.     *name;
  352.  
  353.   unsigned int
  354.     pause;
  355.  
  356.   char
  357.     *pen_colors[MaxNumberPens],
  358.     *print_command;
  359.  
  360.   int
  361.     quantum;
  362.  
  363.   char
  364.     *text_font,
  365.     *title;
  366.  
  367.   unsigned int
  368.     update,
  369.     undo_cache,
  370.     use_pixmap,
  371.     use_shared_memory;
  372.  
  373.   char
  374.     *visual_type,
  375.     *window_group,
  376.     *window_id,
  377.     *write_filename;
  378. } XResourceInfo;
  379.  
  380. typedef struct _XWindowInfo
  381. {
  382.   Window
  383.     id;
  384.  
  385.   int
  386.     screen;
  387.  
  388.   Window
  389.     root;
  390.  
  391.   Visual
  392.     *visual;
  393.  
  394.   int
  395.     class,
  396.     depth;
  397.  
  398.   XVisualInfo
  399.     *visual_info;
  400.  
  401.   XStandardColormap
  402.     *map_info;
  403.  
  404.   XPixelInfo
  405.     *pixel_info;
  406.  
  407.   XFontStruct
  408.     *font_info;
  409.  
  410.   GC
  411.     annotate_context,
  412.     highlight_context,
  413.     widget_context;
  414.  
  415.   Cursor
  416.     cursor,
  417.     busy_cursor;
  418.  
  419.   char
  420.     *name,
  421.     *geometry,
  422.     *icon_name,
  423.     *icon_geometry,
  424.     *crop_geometry;
  425.  
  426.   unsigned int
  427.     data;
  428.  
  429.   unsigned long
  430.     flags;
  431.  
  432.   int
  433.     x,
  434.     y;
  435.  
  436.   unsigned int
  437.     width,
  438.     height,
  439.     min_width,
  440.     min_height,
  441.     width_inc,
  442.     height_inc,
  443.     border_width,
  444.     use_pixmap,
  445.     immutable,
  446.     shape,
  447.     shared_memory;
  448.  
  449.   XImage
  450.     *ximage,
  451.     *matte_image;
  452.  
  453.   Pixmap
  454.     highlight_stipple,
  455.     shadow_stipple,
  456.     pixmap,
  457.     matte_pixmap,
  458.     *pixmaps;
  459.  
  460.   int
  461.     mask;
  462.  
  463.   XSetWindowAttributes
  464.     attributes;
  465.  
  466.   XWindowChanges
  467.     window_changes;
  468.  
  469. #if defined(HasSharedMemory)
  470.   XShmSegmentInfo
  471.     segment_info[2];
  472. #endif
  473.  
  474.   unsigned int
  475.     orphan,
  476.     mapped,
  477.     stasis;
  478. } XWindowInfo;
  479.  
  480. typedef struct _XWindows
  481. {
  482.   Display
  483.     *display;
  484.  
  485.   XStandardColormap
  486.     *map_info,
  487.     *icon_map;
  488.  
  489.   XVisualInfo
  490.     *visual_info,
  491.     *icon_visual;
  492.  
  493.   XPixelInfo
  494.     *pixel_info,
  495.     *icon_pixel;
  496.  
  497.   XFontStruct
  498.     *font_info;
  499.  
  500.   XResourceInfo
  501.     *icon_resources;
  502.  
  503.   XClassHint
  504.     *class_hints;
  505.  
  506.   XWMHints
  507.     *manager_hints;
  508.  
  509.   XWindowInfo
  510.     context,
  511.     group_leader,
  512.     backdrop,
  513.     icon,
  514.     image,
  515.     info,
  516.     magnify,
  517.     pan,
  518.     command,
  519.     widget,
  520.     popup;
  521.  
  522.   Atom
  523.     wm_protocols,
  524.     wm_delete_window,
  525.     wm_take_focus,
  526.     im_protocols,
  527.     im_remote_command,
  528.     im_update_widget,
  529.     im_update_colormap,
  530.     im_update_signature,
  531.     im_former_image,
  532.     im_retain_colors,
  533.     im_next_image,
  534.     im_exit,
  535.     dnd_protocols;
  536. } XWindows;
  537.  
  538. /*
  539.   X utilities routines.
  540. */
  541. extern Export char
  542.   *XGetResourceClass(XrmDatabase,const char *,const char *,char *),
  543.   *XGetResourceInstance(XrmDatabase,const char *,const char *,char *),
  544.   *XGetScreenDensity(Display *),
  545.   *XVisualClassName(const int);
  546.  
  547. extern Export Cursor
  548.   XMakeCursor(Display *,Window,Colormap,char *,char *);
  549.  
  550. extern Export Image
  551.   *XAnimateImages(Display *,XResourceInfo *,char **,const int,Image *),
  552.   *XDisplayImage(Display *,XResourceInfo *,char **,int,Image **,
  553.     unsigned long *),
  554.   *XMontageImages(const XResourceInfo *,XMontageInfo *,Image *),
  555.   *ReadXImage(ImageInfo *,XImportInfo *),
  556.   *XGetWindowImage(Display *,const Window,const unsigned int,
  557.     const unsigned int);
  558.  
  559. extern Export int
  560.   Latin1Compare(const char *,const char *),
  561.   XError(Display *,XErrorEvent *);
  562.  
  563. extern Export unsigned int
  564.   IsTrue(const char *),
  565.   XAnnotateImage(Display *,const XPixelInfo *,XAnnotateInfo *,Image *),
  566.   XDisplayBackgroundImage(Display *,XResourceInfo *,Image *),
  567.   XDrawImage(Display *,const XPixelInfo *,XDrawInfo *,Image *),
  568.   XGetWindowColor(Display *,char *),
  569.   XMakeImage(Display *,const XResourceInfo *,XWindowInfo *,Image *,
  570.     unsigned int,unsigned int),
  571.   XMakePixmap(Display *,const XResourceInfo *,XWindowInfo *),
  572.   XQueryColorDatabase(char *,XColor *);
  573.  
  574. extern Export void
  575.   XAnimateBackgroundImage(Display *,XResourceInfo *,Image *),
  576.   XBestIconSize(Display *,XWindowInfo *,Image *),
  577.   XBestPixel(Display *,const Colormap,XColor *,unsigned int,XColor *),
  578.   XCheckRefreshWindows(Display *,XWindows *),
  579.   XClientMessage(Display *,const Window,const Atom,const Atom,const Time),
  580.   XConfigureImageColormap(Display *,XResourceInfo *,XWindows *,Image *),
  581.   XConstrainWindowPosition(Display *,XWindowInfo *),
  582.   XDelay(Display *,const unsigned long),
  583.   XDestroyWindowColors(Display *,Window),
  584.   XDisplayImageInfo(Display *,const XResourceInfo *,XWindows *,Image *,Image *),
  585.   XFreeResources(Display *,XVisualInfo *,XStandardColormap *,XPixelInfo *,
  586.     XFontStruct *,XResourceInfo *,XWindowInfo *),
  587.   XFreeStandardColormap(Display *,const XVisualInfo *,XStandardColormap *,
  588.     XPixelInfo *),
  589.   XGetAnnotateInfo(XAnnotateInfo *),
  590.   XGetImportInfo(XImportInfo *),
  591.   XGetMapInfo(const XVisualInfo *,const Colormap,XStandardColormap *),
  592.   XGetMontageInfo(XMontageInfo *),
  593.   XGetPixelInfo(Display *,const XVisualInfo *,const XStandardColormap *,
  594.     const XResourceInfo *,Image *,XPixelInfo *),
  595.   XGetResourceInfo(XrmDatabase,char *,XResourceInfo *),
  596.   XGetWindowInfo(Display *,XVisualInfo *,XStandardColormap *,XPixelInfo *,
  597.     XFontStruct *,XResourceInfo *,XWindowInfo *),
  598.   XHighlightEllipse(Display *,Window,GC,const RectangleInfo *),
  599.   XHighlightLine(Display *,Window,GC,const XSegment *),
  600.   XHighlightRectangle(Display *,Window,GC,const RectangleInfo *),
  601.   XMakeMagnifyImage(Display *,XWindows *),
  602.   XMakeStandardColormap(Display *,XVisualInfo *,XResourceInfo *,Image *,
  603.     XStandardColormap *,XPixelInfo *),
  604.   XMakeWindow(Display *,Window,char **,int,XClassHint *,XWMHints *,
  605.     XWindowInfo *),
  606.   XProgressMonitor(char *,const unsigned int,const unsigned int),
  607.   XQueryPosition(Display *,const Window,int *,int *),
  608.   XRefreshWindow(Display *,const XWindowInfo *,const XEvent *),
  609.   XRemoteCommand(Display *,const char *,const char *),
  610.   XRetainWindowColors(Display *,const Window),
  611.   XUserPreferences(XResourceInfo *),
  612.   XSetCursorState(Display *,XWindows *,const unsigned int),
  613.   XSignalHandler(int),
  614.   XWarning(const char *,const char *);
  615.  
  616. extern Export Window
  617.   XClientWindow(Display *,Window),
  618.   XGetSubwindow(Display *,Window,int,int),
  619.   XSelectWindow(Display *,RectangleInfo *),
  620.   XWindowByID(Display *,const Window,const unsigned long),
  621.   XWindowByName(Display *,const Window,const char *),
  622.   XWindowByProperty(Display *,const Window,const Atom);
  623.  
  624. extern Export XFontStruct
  625.   *XBestFont(Display *,const XResourceInfo *,const unsigned int);
  626.  
  627. extern Export XrmDatabase
  628.   XGetResourceDatabase(Display *,char *);
  629.  
  630. extern Export XVisualInfo
  631.   *XBestVisualInfo(Display *,XStandardColormap *,XResourceInfo *);
  632.  
  633. extern Export XWindows
  634.   *XInitializeWindows(Display *,XResourceInfo *),
  635.   *XSetWindows(XWindows *);
  636.  
  637. /*
  638.   Invoke pre-X11R6 ICCCM routines if XlibSpecificationRelease is not 6.
  639. */
  640. #if XlibSpecificationRelease < 6
  641. #if !defined(PRE_R6_ICCCM)
  642. #define PRE_R6_ICCCM
  643. #endif
  644. #endif
  645. /*
  646.   Invoke pre-X11R5 ICCCM routines if XlibSpecificationRelease is not defined.
  647. */
  648. #if !defined(XlibSpecificationRelease)
  649. #define PRE_R5_ICCCM
  650. #endif
  651. /*
  652.   Invoke pre-X11R4 ICCCM routines if PWinGravity is not defined.
  653. */
  654. #if !defined(PWinGravity)
  655. #define PRE_R4_ICCCM
  656. #endif
  657. #include "PreRvIcccm.h"
  658.